#ifndef __LINKLIST_H_
#define __LINKLIST_H_

// 定义节点结构
typedef struct Node
{
    int data;          // 数据域
    struct Node *next; // 指针域，指向下一个节点
} Node;

int main()
{
    Node *list = initList(); // 初始化链表

    // 插入测试
    headInsert(list, 10); // 头插 10
    headInsert(list, 20); // 头插 20
    tailInsert(list, 30); // 尾插 30
    tailInsert(list, 40); // 尾插 40

    printf("链表内容: ");
    traverseList(list); // 输出: 20 -> 10 -> 30 -> 40 -> NULL

    // 删除测试
    deleteHead(list); // 删除头节点
    printf("删除头节点后: ");
    traverseList(list); // 输出: 10 -> 30 -> 40 -> NULL

    deleteTail(list); // 删除尾节点
    printf("删除尾节点后: ");
    traverseList(list); // 输出: 10 -> 30 -> NULL

    deleteAtPosition(list, 1); // 删除位置 1 的节点
    printf("删除位置 1 后: ");
    traverseList(list); // 输出: 10 -> NULL

    // 释放链表
    freeList(list);
    return 0;
}

#endif //__LINKLIST_H_